Interpolation method for smooth convergence correction

ABSTRACT

A method for generating a convergence correction curve from a plurality of successive output data values determined from a plurality of input sample values smaller in number than the plurality of output data values, the method comprising the steps of: defining successive and overlapping intervals including exactly three of the input sample values; interpolating a plurality of the output data values in an interpolation interval by calculating a moving average of a linear interpolation curve based on the three input sample values, each of the output data values being influenced by the three input sample values; emphasizing differently the influence of the three input sample values for determining different ones of the output data values in the interpolation interval; and, adjusting the input sample values to control convergence correction, whereby each incremental slope of the correction curve between adjacent output data values varies smoothly.

This application claims the benefit of provisional application No.60/090,294 filed Jun. 23, 1998.

BACKGROUND OF THE INVENTION

This invention relates to the interpolation of correction factors usedfor points between discrete correction sample points such as a matrix ofpoints in an array or a series of spaced points along a line. Correctionfactors for particular data points are determined by preprocessing thecorrection factor data from weighted sector data leading and trailingthe sector in which a particular point is located. This preprocessingmodifies the correction factors input into a second order piecewiseinterpolation process for the sector of the particular point, andsmoothly approximates an ideal correction curve using relatively fewcorrection factors and minimal data processing operations. The inventionis applicable, for example, to a digital convergence correction systemthat interpolates between points in a matrix of convergence correctionpoints for a color CRT display, or image data that is up-converted, ortimedomain sampled audio signals.

For the purposes of convergence control, the active scan area of adisplay screen may be divided into a matrix of rows and columns havingfactors corresponding to spaced points on the display. The number ofrows and columns, and the number of resulting sections, are selecteddepending on the desired precision of correction. At each grid point inthe matrix, a correction value is determined empirically bysuperimposing the red, green and blue rasters at that point, and notingthe correction values that cancel any distortion and precisely align therasters at that point. The value for each raster at each matrix point isstored, for example in a memory. The successive correction points in aline across the display are intended to represent the ideal correctioncurve. To effect correction, the values of the points on the curve areread out during display of the rasters, generally in successivehorizontal lines, for example using a digital to analog convertercoupled to drive correction coils that adjust the positions of the CRTelectron beams for each color.

The number of correction points is less than the number of samplingpoints employed in reading out the correction factors. Therefore thecorrection points in the matrix can only approximate the idealcorrection curve. An interpolation is performed in the horizontal andvertical directions to define additional values for the sampling pointslocated between the stored values of the correction matrix. Thecorrection curve should pass smoothly through adjacent correction valuesto avoid abrupt changes in the slope of the correction curve across thedisplay, which cause undesirable visible bands in the display.Interpolation in the horizontal direction may be performed, for example,by low pass filtering the correction signal from the digital to analogconverter, or by FIR filters

In a vertical direction (or other direction), interpolation may beaccomplished using computations to fit a low-order polynomial curve to aset of adjustment points. The adjustment points are defined or modifiedto provide a smooth and continuous correction curve. The calculationsneeded for such an interpolation function can be numerous, complex andmemory intensive. A computation that forces the correction curve toprogress linearly from one matrix adjustment value to the next mayproduce sharp inflections or changes in slope at the grid points. Sharpslope changes cause undesirable visual artifacts, referred to as“banding,” that are visible as shade variations in the displayedpicture. It is possible to process the correction curve values to limitthe change in slope that will be permitted from point to point. This isa form of low pass filtering, and eliminates or attenuates some validcorrections that it would be advantageous to retain. This isparticularly true for high bandwidth signals.

The problem of recovering an ideal signal such as a correction waveformfrom a succession of sample values is confronted in a variety ofsituations. If the number of samples is limited, it is not possible toidentically recover all the frequency components of an input signal.Reading out the factors successively produces a stair-step signal.Linearly interpolating between the factors produces a varying sawtoothsignal. Both corrections introduce high frequency components, namelyabrupt slope changes that need to be filtered out using low passfiltering, which eliminates or attenuates valid higher frequencycomponents.

For some applications the solution is to employ a larger number offactors or samples to define the waveform to be recovered. By samplingthe waveform at a frequency higher than the Nyquist frequency the inputwaveform can be substantially recovered. Using a large number ofsampling points or factors improves accuracy but is memory intensive.For other applications a computational filter such as a finite impulseresponse filter can be used. This solution requires computationalresources and time for the filter to arrive at its best correctionfactors. It also introduces deviations from the original sampled data.Neither of these solutions is optimal. In such an application it may bedesirable to minimize the number of factors that define the waveform andthereby to conserve memory. It is also desirable to avoid introducinghigh frequency components that correspond to abrupt changes in slope,and yet to obtain a relatively accurate representation of the inputwaveform wherein desirable slope changes are not unduly attenuated.These objectives should be achieved with a minimal computational burdenin time and processing power.

SUMMARY OF THE INVENTION

An interpolation method in accordance with the inventive arrangementsadvantageously minimizes the number of factors that are needed to definethe waveform and thereby to conserves memory. High frequency componentsthat correspond to abrupt changes in slope are advantageously avoided,and yet, a relatively accurate representation of the input waveform isadvantageously obtained wherein desirable slope changes are not undulyattenuated. Moreover, the problems of the prior art are advantageouslyachieved with a minimal computational burden in time and processingpower.

A method for generating a convergence correction curve from a pluralityof successive output data values determined from a plurality of inputsample values smaller in number than the plurality of output datavalues, in accordance with the inventive arrangements, comprises thesteps of: defining successive and overlapping intervals includingexactly three of the input sample values; interpolating a plurality ofthe output data values in an interpolation interval by calculating amoving average of a linear interpolation curve based on the three inputsample values, each of the output data values being influenced by thethree input sample values; emphasizing differently the influence of thethree input sample values for determining different ones of the outputdata values in the interpolation interval; and, adjusting the inputsample values to optimize convergence correction, whereby eachincremental slope of the correction curve between adjacent output datavalues varies smoothly.

The emphasizing step can comprise the step of interpolating based ondifferent respective numbers of preceding and subsequent ones of theplurality of output data values.

The emphasizing step can also comprise the steps of: ordering the inputsample values in each the interval such that a given one of the inputsamples is preceded by an input sample value and followed by a trailinginput sample value; emphasizing the influence of the preceding inputsample value when calculating the output data values preceding the giveninput sample value; and, emphasizing the influence of the followinginput sample value when calculating the output data values following thegiven input sample value.

The adjusting step can comprise the steps of: observing the correctionachieved by the correction curve; and, adjusting the input sample valuesto achieve optimized output data values that accurately position araster for convergence.

The observing step can comprise the step of automatically detecting thecorrection with a machine.

The method can further comprise the step of shifting the interpolationinterval by a selected number of the output data samples.

The method can also further comprise the steps of: selecting theaveraging interval to be an even number P of the interpolationintervals; and, selecting a value for P such that 2*P is a factor oftwo.

The interpolating step can comprise the step of using a ramp functionfor calculating incremental slopes preceding and following each theinterpolation interval, the ramp function determining a smoothtransition between adjacent ones of the interpolation intervals. Theusing a ramp function step can comprise the steps of: calculating afirst mean value based on the input sample values preceding each theinterpolation interval; and, calculating a second mean value based onthe input sample values following each the interpolation interval.

Another method for generating a convergence correction curve from aplurality of successive output data values determined from a pluralityof input sample values smaller in number than the plurality of outputdata values, in accordance with the inventive arrangements, comprisesthe steps of: defining successive and overlapping intervals includingthree of the input sample values; interpolating a plurality of theoutput data values in an interpolation interval such that eachincremental slope of the correction curve between adjacent output datavalues varies smoothly and the plurality of input sample values do notlie on the correction curve; and,

adjusting the input sample values to control convergence correction,

whereby convergence correction is achieved without banding artifacts.

The method can comprise the step of defining successive and overlappingintervals including at least three of the input sample values.

The emphasizing step can comprise the steps of: ordering the inputsample values in each the interval such that a given one of the inputsamples is preceded by an input sample value and followed by a trailinginput sample value; emphasizing the influence of the preceding inputsample value when calculating the output data values preceding the giveninput sample value; and, emphasizing the influence of the followinginput sample value when calculating the output data values following thegiven input sample value.

The method can further comprise the steps of: selecting the averaginginterval to be an even number P of the interpolation intervals; and,selecting a value for P such that 2*P is a factor of two.

The interpolating step can comprise the step of using a ramp functionfor calculating incremental slopes preceding and following each theinterpolation interval, the ramp function determining a smoothtransition between adjacent ones of the interpolation intervals. Theusing a ramp function can comprise the steps of: calculating a firstmean value based on the input sample values preceding each theinterpolation interval; and, calculating a second mean value based onthe input sample values following each the interpolation interval.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is a block diagram of a digital convergence system.

FIG. 1B illustrates a convergence correction grid.

FIG. 2 graphically illustrates interpolation values according to alinear calculation.

FIG. 3 is a flow diagram for implementing linear interpolation.

FIG. 4A is a flow diagram for an interpolation method according to anaspect of this invention.

FIG. 4B graphically illustrates constants generated for an interpolationmethod according to an aspect of this invention.

FIG. 5 graphically illustrates the effect of an interpolation methodaccording to an aspect of this invention.

FIG. 6 graphically illustrates the effect of an interpolation methodaccording to an aspect of this invention.

FIG. 7 is a block diagram according to a further aspect, illustratingthe relationship of correction factors employed to generate a secondorder interpolation from linear interpolation factors determined fromsectors that lead and trail a particular sector.

FIG. 8 is a plot of a random signal with sample values shown by hollowsquares and interpolated output values according to the invention shownin solid diamonds. Linear and smoothed representations of the samplevalue signal and the output value signal are shown by background lines.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The invention concerns an optimized process and device for generating awaveform from a succession of factors defining the waveform, and isparticularly applicable to recovering waveforms from a minimum number ofsamples with minimal computational overhead. The invention is applicableto various situations but is illustrated with respect to a digitalconvergence correction system in which a matrix of factors for pointsspatially distributed on a display is stored and used to generatecorrection waveforms for each color raster of the display.

A digital convergence system as shown in FIG. 1A generally comprises aconvergence pattern generator, an amplifier for driving convergencecorrection coils or yokes, a memory for storing correction constants,and an interface with a microprocessor. The convergence system is usedto determine and store a matrix of correction factors for the positionof each of the color rasters at spaced points in a display. The systemdetermines additional correction values from the matrix, includingvalues for points between the points in the matrix. During display of asignal, the correction values are read out through a digital to analogconverter and amplifier to drive the convergence correction coils. Theconvergence correction coils superimpose a deflection signal on a mainsignal that is otherwise generated and causes the rasters to scan on adisplay screen.

The digital convergence system includes an internal microprocessor 102.An external microprocessor 30 can be provided for independentconvergence correction. The internal microprocessor controls the outputto the convergence correction coils. The internal and/or externalmicroprocessors can manage determination of the matrix of correctionfactors by the customer or as a setup or maintenance procedure by atechnician. An example of customer convergence correction would berevising the convergence correction needed to correct for pictureshifting when a projection television is moved to a differentorientation in the Earth's magnetic field.

FIG. 1A illustrates a system that may use an advantageous digitalconvergence method according to this invention. Digital convergencecircuit 100 also includes EEPROM 103, internal RAM 104, digital toanalog converter (DAC) 105 and a convergence pattern generator 120.

Adjustment is via a set of adjustment points for each of the threecolors. Generally, an on-screen video pattern generator, such asconvergence pattern generator 120, provides a location reference foradjustments. Adjustment data is stored in EEPROM 103 and read intointernal RAM 104 on power-up. Internal RAM 104 has capacity for X(number of alignment points horizontally) by Y (number of alignmentpoints vertically) by two (horizontal/vertical) by three (R, G, B)factors.

The active scan area of a display means, for example, can be divided forpurposes of convergence control into rows and columns defining arectilinear grid, with adjustment factors stored only for the points atthe grid line crossings. FIG. 1B shows a display screen defined withsuch a cross hatch grid in which the active area is defined by the outerrectangle. In this example thirteen vertical grid points or samples isprovided, and sixteen horizontal samples, but any number of samplepoints is possible, depending on the desired precision of correction inthe resulting raster. The samples are used to determine the convergencecorrection of each raster in the respective area of the grid, includingthe points at the grid line crossings and also the points between thegrid line crossings. According to an inventive aspect, the localcorrection takes into account the correction values for more remoteareas of the grid that precede and follow a particular point, using apre-emphasis technique that adjusts the input values presented to aninterpolation process.

Referring again to FIG. 1A, the digital convergence system suppliesplus-or-minus horizontal and vertical convergence signals for each ofthe three colors. Three output stages, namely low pass filter 106,amplifier 107 and coil 108 are provided, being shown for one color onlyin FIG. 1A. The correction data is provided by microprocessor 102 todigital to analog converter 105. Low pass filter 106 removes orattenuates higher frequency components, and amplifier 107 provides acurrent output to drive convergence coil 108 as a function of the outputof the low pass filter. Amplifier 107 can be a feedback amplifier thatresponds to the current level in convergence yoke 108 and drives theyoke to match the level dictated by the output of digital to analogconverter (DAC) 105. The ideal drive current in convergence coil 108 isthat necessary to cause the color raster image on CRT 10 to be correctlyaligned, without distortion and corresponding accurately with the imagesfrom the other two colors.

In FIG. 1B, points A, B and C are three locations along a line (in thiscase a vertical line), for which convergence correction factors aredefined and stored. The value of the convergence correction factors atgrid points A, B and C will be referred to as F1(0), F1(1) and F1(2),respectively. Convergence correction data for additional points alongthe line between adjustment points A, B and C is calculated byinterpolation.

FIG. 2 is an exemplary plot of the values of the convergence factorsalong the line of adjusting points that includes points A, B and C. Inthe figure, the Y-axis represents the correction factor values and theX-axis represents the point positions. Along the X-axis, M is theincrement of the stored adjustment points for convergence correction.Including the interpolation points between the stored adjustment pointsare additional points at which calculated correction values are to beread out to DAC 105 in FIG. 1A. L represents an index of points betweenadjustment points for the purposes of calculating interpolatedconvergence correction values. Thus F1(M) represents the unprocessedconvergence correction point data of the matrix. Assuming a linearinterpolation between successive correction point values as shown, F2(L)represents the interpolated convergence correction data for the outputsamples, corresponding to straight line segments between adjustmentpoints.

A linear interpolation calculation to determine correction values atintermediate points L, for example the interval M to (M+1), is shown inFIG. 3. FIG. 3 is a flow diagram wherein the counters M and L areinitialized to zero at block 301. The incremental change K from onepoint L to the next in the interval between factors M to M+1 isdetermined at block 302 by averaging the difference between adjacentmatrix factors F1(M) and F1(M+1) over the number of output values NL(which is ten in the example of FIG. 2). Block 303 initializes theoutput F2(L) of the first intermediate output point to the value of thematrix factor F1(M) and block 304 resets a counter for the intermediateoutput points between M and M+1. Steps or blocks 305, 308 and 309 form aloop in which the incremental or average difference K is successivelyadded to the previous value of output F2(L) until the output values forpoints between M and M+1 are determined. The average value K defines aconstant slope between M and M+1, resulting in the straight line of FIG.2. The process is repeated between the next matrix factors (M+1 to M+2)and so on until all the output correction values have been determined.Factor K is recalculated to define a new slope between each pair ofmatrix points. The abrupt changes in slope produce banding in thedisplay.

FIG. 4 demonstrates an inventive interpolation technique in which theslope between the output values for points L between matrix factors M issmoothly varied as a function of the values of some adjacent points.More particularly, the interpolation process according to FIG. 4 shiftsor offsets the interval to be interpolated a selected number of outputsamples P. In addition, progressing through the output points over thespan of interpolation, a factor Ramp(L) shifts from emphasis on asample-to-sample incremental slope K4 representative of the slope of theprevious interval (e.g., M−1 to M), to an incremental slope K3representative of the next interval (M to M+1). The offset factor P isconstrained such that the number of lines NL between matrix factors mustbe greater than 2P, and the value of 2P must be a factor of two. Theseconstraints provide a smooth correction curve and substantially simplifythe calculations needed to determine an output correction value F3(L)for each point L between the matrix points.

According to the process shown in FIG. 4A, the resulting curve is notforced to pass directly through the adjustment points defined by thematrix points. That is, F3(L) does not necessarily equal F1(M). However,in setting up the matrix of adjustment factors originally, thetechnician also determines the values of the matrix factors. Duringsetup, the matrix factors are set such that the values of F1(M) aredisplaced from the ideal correction curve sufficiently that the outputvalues F3(L) closely approximate the ideal curve.

The general interpolation calculation according to the method shown inFIG. 4A is:

F 3(L)=AVG(F 2(L−N) . . . F 2(L+N))

where L represents an index to the interpolated data and N determinesthe span of leading and trailing points over which smoothing is applied.The interval to be averaged may be shifted by variable P, where P=N−1and 2P is a power of two:

F 3(L)=AVG(F 2(L−P) . . . F 2(L+N))

To calculate the smoothed curve value F3(L), it is necessary to sum thedata points in the interval from L−P to L+N., and divide by (P+N+1). Byselecting P=N−1 and 2P as a power of two, the calculation of thefunction F3(L) in binary math for the interval (L−P) to (L+N) issimplified because the divide operation is merely a bit shift operation.

FIG. 4A illustrates a flow diagram of an advantageous interpolationprocess. Steps 400, 401, 402, 403, 404, and 405 show initializationcalculations according to this method, namely determining the values offour factors, K1, K2, K3 and K4, from the matrix values F1(M−1), F1(M)and F1(M+1) as well as the number of output samples NL per matrixsegment and the offset P. Factor K2 is initially zero (block 402) and ischanged by an incremental amount Ramp(L) (block 406) that is determinedin a loop between L=0 and L=2P (blocks 403-405).

Step 400 initializes the data indices and system parameters N, L and P.The value for P is selected to determine the number of points to beaveraged by the inventive interpolation method, which determines thelevel of smoothing desired. Some considerations for selecting P are thatthe span of lines 2P cannot be greater than NL, and preferably P=N−1.The value of 2P should be a power of two for simplification of division.

Step 400 resets the counters M and L, and may also permit the operatorto input system level variables, N, NL and P. Unless these factors arepreliminarily set and comply with the constraints, step 401 can beprovided to check the boundaries and values of the parameters, promptingthe operator to re-enter selections if the constraints are not met.

The interpolation process begins at Step 402, which initializes Ramp(L)and K2(L) to zero and calculates values for the remaining factors, whichvalues will remain constant through the interpolation segment. Theconstants K1 and K2 are a function of L, which is the same as in simplelinear interpolation according to FIGS. 2 and 3. K1 is a constant equalto (2P*NL)−P. This offsets the averaging interval to the right, due to Pbeing N−1. It is also possible to use P=N+1, such that theinitialization is K1=(2P*NL)+P, with the averaging interval offset tothe left. Constants K3 and K4 are calculated in accordance with theequation of Step 402 and represent the linear average incremental changebetween points L in the sectors following and leading matrix point M,respectively.

Since F2(L+1)=F2(L)+K and F2(L)=F1(M), according to linear interpolationmethods as described with reference to FIG. 3, the equation of F3(L) canbe simplified, as shown in step 406 of FIG. 4A, to:

F 3(L)=F 1(M)+K 1(L)/2P*K 3−(K 2(L)/2P)*K 4

where K 3=(F 1(M)−F 1(M+1))/NL and

K 4=(F 1(M)−FI(M−1))/NL

A ramp function Ramp(L) is generated as shown in Step 405. This functionincrements when L−(NL*M) is greater than (NL−2P)/2, and flattens whenL−(NL*M) exceeds 2P+(NL−2P)/2. Function Ramp(L) causes a transition fromone segment to the next. The boundary conditions are detected in steps403 and 404, forming a loop. At steps 403, 404 and 405, the functionRamp (L) is defined as:

IF (L−NL*M)<(NL−2P)/2 THEN Ramp(L)=0

IF (L−NL*M)−2P>(NL−2P)/2 THEN Ramp(L)=2P

ELSE Ramp(L)=L−NL*M−(NL−2P)/2

Step 406 calculates factors K1 and K2 and uses the two factors to setthe output value F3(L):

K 2(L)=K 2(L−1)+Ramp(L)

 K 1(L)=K 1(L−1)−(2P−Ramp(L))

F 3(L)=F 1(M)+(K 1(L)/2P)*K 3−K 2(L)/SP)*K 4

Step 407 checks the boundary conditions and loops until theinterpolation is completed and then counter M is incremented and theinterpolation process continues at step 402 for the next segment, withresetting Ramp(L) and K2 and recalculating the remaining factors for thenext segment.

The foregoing functions are graphically illustrated in FIG. 4B for aspecific case where NL=20 and 2P=16. FIG. 4B represents the output dataof Ramp(L), K1 and K2(ordinate) versus L (abscissa). The right ordinateis the data corresponding to the Ramp output and the left ordinatecorresponds to the K1, K2 data.

Comparisons of the effects of a linear interpolation versus anadvantageous interpolation process as described with reference to FIG.4A is illustrated in FIGS. 5 and 6. FIG. 5 shows the correspondence ofthe output F3(L) to the matrix points F1(M). The output curve F3(L) issmooth, but it does not intersect the adjustment points F1(M). FIG. 6shows three plots as a function of L (abscissa). SUM represents anapproximation of an ideal convergence correction curve that sums asinusoidal waveform, a parabola and a linear waveform. The waveform‘Interpolated’ represents a linear interpolation. ‘Interp2’ representsthe inventive interpolation method as described with reference to FIG.4A.

The interpolation process according to FIGS. 4A and 4B eliminatesbanding effects using a smoothing technique that causes the outputvalues F3(L) to approach but usually not to cross the matrix adjustmentvalues F1(M). The smoothing process rounds the curves approaching thosematrix points at which a change of slope occurs, as shown in FIG. 5. Thematrix adjustment values cannot be determined directly from the amountof vertical and horizontal displacement that correctly locates thecorresponding point on the raster, because the output value F3(L), whichactually displaces the raster via the convergence coil, is affected bythe values of adjacent adjustment values in the matrix. In applying theinvention to digital convergence correction it is possible to set andthen adjust the values F1(M) in the correction matrix by observing thecorrection achieved by the output of the interpolation technique, F3(L).This effectively generates an artificial value for F1(M) as the input tothe interpolation technique, namely the value that causes the resultingoutput value F3(L) to be precisely the value needed to accuratelyposition the raster.

The more general problem presented when using sample values to generatean approximation of an input signal, does not involve an opportunity foroperator feedback as a means to indirectly adjust sample values (orcorrection factors) to account for effects introduced by the smoothingtechnique. The available sample points are simply the digitized samplesof an input signal to be regenerated. After interpolation it isdesirable that the output signal be equal or very nearly equal to theinput and sample values at corresponding times or positions. Accordingto a further inventive aspect, the invention can smoothly interpolatebetween samples as described above, so as to approximate the inputsignal from which the samples were taken, using factors equal to samplesof the input signal and producing an output that is equal to the inputvalue at the sample positions, within any chosen precision. This isaccomplished as shown in FIG. 7, in connection with the followingdescription. A pre-emphasis technique generates sampling factorsF1(M−1), F1(M) and F1(M+1), which are correction factors as used in aconvergence application and can represent input sampling factors inother applications as well. Factors F1(M−1), F1(M) and F1(M+1) are usedin the interpolation method described previously. A wider span ofsuccessive samples F3(M−n) through F3(M+n) thereby pre-emphasize thefactors K that are applied to interpolate between the sample factorsF1(M−1), F1(M) and F1(M+1), to regenerate the input signal.

The inventive interpolation method uses weighted factors that transitionthe slope of the curve from a value characterizing a sector preceding asector being interpolated, to a value of a sector trailing the sectorbeing interpolated. The general interpolation function to be solved is:

F 3(M)=F 1(M)−(Navg/8)*(F 1(M)−F 1(M+1)/NL)−(Navg/8)*(F 1(M)−F1(M−1)/NL)

where:

Navg=the number of points being averaged, always a power of two andalways<=NL;

NL=an arbitrary number of additional points to be interpolated;

F3(M)=the original sampled data which also is desired to be presented atthe output; and,

F1(M)=a pre-processed data value which is to be determined according tothe invention and functions as an input factor to the interpolationfunction. F1(M) is processed from F3(M) to insert an emphasisrepresenting the values of the signal F3(M) in adjacent sectors.

If the next previous equation is solved for F1(M), the result is:

F 1(M)=(4*NL/(4NL−Navg))*(F 3(M)−(Navg/8*NL)*(F 1(M+1)+F 1(M−1)))

This result is somewhat intractable. The value of F1(M) is determined inpart by the values of F1(M+1) and F1(M−1). In the iteration for the nextor previous interpolation segment, the value of F1(M) partly orcompletely determines the values of F1(M−1) and F1(M+1), rendering theequation recursive and apparently unsolvable. According to an inventiveaspect, a solution is approximated to a given precision by lettingF1(M+/−P)=F3(M+/−P), where P is a constant ≧1. This provides a goodapproximation where the interaction has grown sufficiently small for thelevel of accuracy desired.

This approximated solution is in fact practical, as can be seen byexpanding the most difficult case, namely where Navg=NL, for a typicalsize of interpolation segment. Then,

F 1(M)=(4/3)*F 3(M)−(1/6)*(M+1)+F 1(M−1))

Which expands to:

F 1(M)=(4/3)*F 3(M)−(1/6)*(4/3)*(F 3(M+1))+(1/6)*(1/6)*(2*F 1(M)+F1(M+2)+F 1(M−2))

Which simplifies to:

F 1(M)*(1−1/18)=(4/3)*F 3(M)−(2/9)*(F 3(M+1)+F 3(M−1))+1/36*(F 1(M+2)+F1(M−2))

and then expands to:

 F 1(M)*(1−1/18)=(4/3)*F 3(M)−(2/9)*(F 3(M+1)+F 3(M+1))+(1/36)*(4/3)*F3(M+/−2)−(1/36)*(1/6)*(F 1(M+/3)+F 1(M+/−1))

The solution can be expanded ad-infinitum. The interaction terms to beused in the expansion and the pre-emphasis provided, are decreasing witheach component which is added, with an order of magnitude of1/6{circumflex over ( )}P, where P is the number of points before orafter M which are being examined. This is a critical result, because itshows that a solution is possible to an accuracy of 2/(6{circumflex over( )}P) when considering this number of terms. Thus an accuracy of 8 bits(one part in 256) is possible according to the invention, consideringthree terms of the series.

The foregoing approximation as shown in FIG. 7 is used to generatepre-emphasized or pre-processed values for F1 that are used as inputs tothe interpolation process discussed above, for reproducing a curve fromdiscrete sample values of an input signal F3(M−n) through F3(M+n). Fromthe expansion, symmetrical coefficients of a pre-emphasis input filterare calculated as:

F 1(M)=(4/3*18/17)*F 3(M)−((2/9−4/(3*216))*18/17)*F3(M+/−)+1/27*(18/17)*F 3(M+/−2)−(1/162)*(18/17)*F 3(M+/−3)

The inventive method is useful as a numeric filtering process operableto interpolate additional data points between samples of a sampled datastream taken from an input signal. The invention is applicable toconvergence correction as is the basic interpolation technique, as wellas to other digital to analog conversions such as the vertical andhorizontal conversions needed when up-converting video information fromone format to another, and other such applications.

As an example of video format conversion, assuming a requirement toconvert a 640×480 interlaced picture into a 1440×1080 interlacedpicture, the invention is applicable to interpolate the data for theadditional points to be displayed. The ratio of the two resolutions is4/9 (480=4*120, 1080=9*120). Given this, let Navg=8, NL=9, and selectevery 4th calculated point to be displayed.

Using-these values and the equationF1(M)=(4*NL/(4NL−Navg))*(F3(M)−(Navg/8*NL)*F1(M+1)+F1(M−1))), as setforth above, we obtain:

F 1(M)*(1−2

*k 1 ⁴−2*k 1 ⁴−

2 *k 1 ⁶− . . . )=

k 2*(k 1+k 1 ³ +k 1 ⁵

+ . . . )*F 3

(M+/−1)+

k 2*(k 1 ²+2k 1 ⁴+

2k 1 ⁶ . . . )*F 3

(M+/−2)

k 2*(k 1 ³ +k 1 ⁵

+k 1 ⁷ . . . )*F 3(M+/−3)+

k 2*(k 1 ⁴ ⁺

k 1 ⁴ +k 1 ⁶ . . . )*F 3(M+/−4),

Where k2=4*NL(4*NL Navg), and k1=Navg/(2*(4*NL−Navg)).

In the specific case presented for video conversion, where NL=9 andNavg=8, k1=0.142857 and k2=1.285714. In order to obtain an accuracy of 8bits, the terms are expanded including F3(M+/−3), since k2*k3³=3.756×10E−3. The pre-emphasis filtration then computes:

F 1(M)=k 2/(1−2

k 1 ²)*F 3(M)−

(k 2/(1−2k 1 ²))

*(k 1+K 1 ³)*(F 3(M+1)

+F 3(M−1))+

(k 2/(1−2k 1 ²))*(k 1 ²)

*(F 3(M+2)+F 3(M−2))−

(k 2/(1−2k 1 ²))*(k 1 ³)

*(F 3(M+3)+F 3(M−3)).

The result is a relatively accurate curve that passes through theoriginal data points of the 640×480 digitized image data within ± onebit. FIG. 8 graphically illustrates the correspondence of theinterpolated data and the input data points, using a random data set.The original data points are shown as rectangles, and the interpolateddata points are shown as diamonds. The straight lines are thepre-emphasized data connected linearly. The curved line is theinterpolated data expanded and connected by a second-order curve.

The calculations as disclosed above can be accomplished by the internalmicroprocessor 102 of a digital convergence circuit or other availableprocessor. It is not necessary to provide an external processor in thesignal path to generate converted data. The frame of RAM memory neededin the digital convergence circuit is actually smaller than that neededin a conventional digital convergence system.

One way of generating correction waveforms based on stored correctiondata is to provide a RAM data array which is X by Y1 by 2 by 3, where Xis the number of horizontal correction points and Y1 is the number oflines in the field. Y1=Y*NL. To avoid using a large frame of memory, theinventive interpolation method can generate the interpolated orconverted data from the stored data on a real-time basis. The amount oftime available is the horizontal line time (e.g., approximately 63microseconds) divided by X. Preferably, a parallel process isimplemented for each color. A relatively simple-calculation is providedaccording to the invention (having minimal multiplies, divides, adds andsubtracts). Preferably, binary factors are chosen or result from theconditions placed on the factors (e.g., factor P). This enables the useof simple shifts or truncations in lieu of adds (or subtracts) andshifts in effecting multiply and divide operations using binary orfloating point multiply and divide operations. As a result, the outputdata is produced with minimal processing hardware and processing poweras compared to conventional curve fitting methods using polynomial curvefitting involving exponential calculations, numerousmultiplication/division and addition/subtraction operations that may beimpractical to attempt in real time.

Linear interpolation can be accomplished using one multiply and one addoperation. Using the inventive interpolation method of pre-emphasizingfactors to generate values F1(M−1) through F1(M+1) as inputs to thesecond order interpolation block, two multiplies and two adds arerequired.

It should be noted that there is not a direct relationship between thepre-emphasis interval and the interpolation interval. The interpolationalgorithm uses exactly three input data samples per interval in thepresently preferred embodiment. More than three input sample values canbe used but the calculations much more complex. The accuracy of theoutput waveform is determined by the combination of the interpolationconstants chosen and the number of input sample values which are used inthe pre-emphasis calculation. The trade-off is between accuracy andmathematical complexity, or in other words, the speed and cost of thecalculation.

When using exactly three input sample values for the interpolationinterval, and using three input sample values in the pre-emphasisinterval, the interpolated output curve approximates the input curvewithin a precision of approximately 6%. When using five input samplevalues in the pre-emphasis interval, the interpolated output curveapproximates the input curve within a precision of approximately 1%.When using seven input sample values in the pre-emphasis interval, theinterpolated output curve approximates the input curve within aprecision of approximately 0.1%.

The inventive technique is applicable to provide a smooth approximatedinterpolation of extended functions generally, and can fit aninterpolated curve (i.e., can smoothly add values between spaced samplevalues) to an input for purposes such as digital video, audio or anysituation in which the input sampling rate or density of values is lowerthan that of the desired output.

What is claimed is:
 1. A method for generating in real time aconvergence correction curve F3(L) from a plurality of successive outputdata values (L) determined from a plurality of stored input samplevalues (M) smaller in number than said plurality of output data values,the method comprising the steps of: defining successive and overlappinginterpolation intervals including a given number of said input samplevalues (e.g., M−1, M, M+1; M, M+1, M+2); linearly interpolating saidinput sample values in each said interpolation interval to generate saidoutput data values defining said convergence correction curve, saidlinear interpolating occurring over all of each said interpolatinginterval; emphasizing differently the influence of said given number ofinput samples during said linear interpolating; characterized by thesteps of: calculating (step 402 through 406) a moving average of saidoutput data values concurrently with said linear interpolating, but insuccessive spans (N) of said output data values leading and trailingeach input sample value, each said span having fewer numbers of saidoutput data values than are generated in each said interpolatinginterval, said output data values being modified by said moving averageto impart smoothly varying incremental slopes to said convergencecorrection curve; and, adjusting said input sample values to configuresaid convergence correction curve.
 2. The method of claim 1, whereinsaid emphasizing step is based on different respective numbers ofpreceding and subsequent ones of said plurality of output data values.3. The method of claim 1, wherein said emphasizing step comprises thesteps of: ordering said input sample values in each said interval suchthat a given one of said input samples is preceded by an input samplevalue and followed by a trailing input sample value; emphasizing theinfluence of said preceding input sample value when calculating saidoutput data values preceding said given input sample value; and,emphasizing the influence of said following input sample value whencalculating said output data values following said given input samplevalue.
 4. The method of claim 1, wherein the adjusting step comprisesthe steps of: observing the correction achieved by the correction curve;and, adjusting said input sample values to achieve optimized output datavalues that accurately position a raster for convergence.
 5. The methodof claim 4, wherein the observing step comprises the step ofautomatically detecting the correction with a machine.
 6. The method ofclaim 1, comprising the step of shifting said interpolation interval bya selected number of said output data samples.
 7. The method of claim 1,comprising the steps of: selecting each said span to be an even number Pof said interpolation intervals; and, selecting a value for P such that2*P is a factor of two.
 8. The method of claim 1, wherein saidinterpolating step comprises the step of using a ramp function (RAMP(L))for calculating said incremental slopes preceding and following eachsaid interpolation interval, said ramp function determining a smoothtransition between adjacent ones of said interpolation intervals.
 9. Themethod of claim 8, wherein said using a ramp function step comprises thesteps of: calculating a first mean value based on said input samplevalues preceding each said interpolation interval; and, calculating asecond mean value based on said input sample values following each saidinterpolation interval.
 10. The method of claim 1, comprising the stepof including exactly three of said input sample values in each saidinterpolation interval.
 11. The method of claim 10, comprising the stepsof: shifting each said span by a number of said output data values P;and, selecting a value for P such that P is less than the number oflines in each said interpolation interval (P<NL) and 2*P is a power oftwo.